package com.youlai.boot.factory.service;

import com.youlai.boot.factory.model.entity.StyleProcess;
import com.youlai.boot.factory.model.form.StyleProcessForm;
import com.youlai.boot.factory.model.query.StyleProcessQuery;
import com.youlai.boot.factory.model.vo.ImportStyleProcessVo;
import com.youlai.boot.factory.model.vo.StyleProcessVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 款号工序关联服务类
 *
 * @author youlaitech
 * @since 2025-10-06 11:07
 */
public interface StyleProcessService extends IService<StyleProcess> {

    /**
     *款号工序关联分页列表
     *
     * @return {@link IPage<StyleProcessVO>} 款号工序关联分页列表
     */
    IPage<StyleProcessVO> getStyleProcessPage(StyleProcessQuery queryParams);


    /**
     *款号工序关联分页列表-关联工序表
     *
     * @return {@link IPage<StyleProcessVO>} 款号工序关联分页列表-关联工序表
     */
    IPage<StyleProcessVO> getStyleProcessJoinPage(StyleProcessQuery queryParams);

    /**
     * 获取款号工序关联表单数据
     *
     * @param id 款号工序关联ID
     * @return 款号工序关联表单数据
     */
     StyleProcessForm getStyleProcessFormData(Long id);

    /**
     * 新增款号工序关联
     *
     * @param formData 款号工序关联表单对象
     * @return 是否新增成功
     */
    boolean saveStyleProcess(StyleProcessForm formData);

    /**
     * 修改款号工序关联
     *
     * @param id   款号工序关联ID
     * @param formData 款号工序关联表单对象
     * @return 是否修改成功
     */
    boolean updateStyleProcess(Long id, StyleProcessForm formData);

    /**
     * 删除款号工序关联
     *
     * @param ids 款号工序关联ID，多个以英文逗号(,)分割
     * @return 是否删除成功
     */
    boolean deleteStyleProcesss(String ids);

    /**
     * 根据工序模板id批量导入工序
     * */
    int importStyleProcess(ImportStyleProcessVo importStyleProcessVo);

}
